package ogs.lib.mina.core.filterchain
{
	public interface IoFilter
	{
		function onPreAdd(parent:IoFilterChain, name:String, nextFilter:NextFilter):void;

		function onPostAdd(parent:IoFilterChain, name:String, nextFilter:NextFilter):void;

		function onPreRemove(parent:IoFilterChain, name:String, nextFilter:NextFilter):void;

		function onPostRemove(parent:IoFilterChain, name:String, nextFilter:NextFilter):void;
		
		
		function sessionOpened(nextFilter:NextFilter):void;
		
		function sessionClosed(nextFilter:NextFilter):void;
		
		function exceptionCaught(nextFilter:NextFilter, cause:Error):void;
		
		function messageReceived(nextFilter:NextFilter, message:Object):void;
		
		function filterWrite(nextFilter:NextFilter, message:Object):void;
		
		function filterClose(nextFilter:NextFilter):void;
	}
}